package com.rainszj.service.impl;

import com.rainszj.mapper.TagMapper;
import com.rainszj.pojo.po.BlogAndTag;
import com.rainszj.pojo.po.Tag;
import com.rainszj.service.TagService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

/**
 * @author rainszj
 * 2020/3/13
 */
@Service
public class TagServiceImpl implements TagService {

    @Autowired
    TagMapper tagMapper;

    @Override
    public int saveTag(Tag tag) {
        return tagMapper.saveTag(tag);
    }

    @Override
    public int removeTag(Long id) {
        if (tagMapper.removeBlogAndTag(id) > 0 && tagMapper.removeTag(id) > 0) {
            return 1;
        } else {
            return 0;
        }
    }

    @Override
    public int updateTag(Long id, Tag tag) {
        return tagMapper.updateTag(id, tag);
    }

    @Override
    public Tag queryTagById(Long id) {
        return tagMapper.queryTagById(id);
    }

    @Override
    public Tag queryTagByName(String name) {
        return tagMapper.queryTagByName(name);
    }

    @Override
    public List<Tag> listAllTag() {
        return tagMapper.listAllTag();
    }

    @Override
    public List<Tag> listAdminTag() {
        return tagMapper.listAdminTag();
    }


    /**
     * 将String类型的 tags 装换成List集合
     *
     * @param tags
     * @return
     */
    @Override
    public List<Tag> stringTagsToList(String tags) {
        ArrayList<Tag> tagArrayList = new ArrayList<>();
        // 前端提交的tags的格式： 1,2,3
        String[] split = tags.split(",");
        if (!"".equals(tags)) {
            for (String stringTag : split) {
                long tagId = Long.parseLong(stringTag);
                Tag tag = tagMapper.queryTagById(tagId);
                tagArrayList.add(tag);
            }
        }
        return tagArrayList;
    }

    @Override
    public BlogAndTag queryBlogAndTag(Long tagId, Long blogId) {
        return tagMapper.queryBlogAndTag(tagId, blogId);
    }


}
